The high-technology boom of recent years has delivered new and exciting technologies to the market place with increasing frequency. As advancements continue to march forward, research and development has intensified and product cycles compressed. In the case of processors, each iteration of a processor provides the consumer with new features to perform novel tasks or old tasks in a faster and more efficient manner. Often, a release of a new processor is coupled with the release of new software packages to leverage the new features. One such software packet may include a new compiler designed to compile applications to gamer the benefit of the new processor features. Upon issue of a new compiler specially tailored for a new processor, software vendors often re-release old software applications re-compiled with the new compiler. Doing so allows the old software to execute in a more efficient manner on the new processor by leveraging the new features.
Modem operating systems (“OS's”) often have access to optimized instruction sets (or routines) for execution on a particular hardware entity. For example, the Intel Pentium III processor includes an instruction set called SSE (Streaming SIMD (Single Instruction, Multiple Data) Extensions). SSE is a set of microprocessor instructions that allow software to tell the processor to carry out specific operations. By using these microprocessor instructions optimized for the Pentium III, OS's and software applications can leverage the full capabilities of the Pentium III. Optimized instructions can reduce the overall number of instructions required to execute a particular program task or otherwise execute the particular program task in a more efficient manner, resulting in an overall performance increase of the OS and/or application.
However, OS and application source code is compiled with specific processors in mind and without platform-specific knowledge. For example, software written and complied for an SSE processor may not be able to leverage advantages flowing from new instructions of an SSE2 processor. Optimized routines for other hardware entities, such as chipsets, may also be provided that cannot be fully anticipated at the time of software production. As such, software releases may substantially lag behind hardware developments leaving new features unused for substantial periods of time.